Conversation
Sellers that implement comply_test_controller but not a specific force_*
scenario arm return {success: false, error: UNKNOWN_SCENARIO}. The
storyboard narrative already required not_applicable grading; this adds
the machine-readable enforcement layer that was missing.
- storyboard-schema.yaml: adds force_scenario_unsupported block with a
normative MUST for runners, detection order documentation, and
distinction from fixture_seed_unsupported / missing_test_controller.
- runner-output-contract.yaml: adds fixture_seed_unsupported,
force_scenario_unsupported, and unresolved_scenario_reference as
recognized narrower detail values under reason: not_applicable, with
the encoding MUST for force_scenario_unsupported.
No storyboard YAML changes — create_media_buy_async.yaml narrative was
already correct. Runner implementation fix tracked in adcp-client.
Closes #4226.
https://claude.ai/code/session_01Uu4K4voWNzFUCUQzKyrsiC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #4226
Summary
The compliance runner graded
create_media_buy_asyncas FAILED when a seller returnedUNKNOWN_SCENARIOonforce_create_media_buy_arm. The storyboard narrative already said this should gradenot_applicable, but the runner contract had no machine-readable enforcement layer for explicitforce_*phase steps — onlyfixture_seed_unsupported(auto-injected fixture phase) was documented.This PR adds the missing spec text so conforming runners can implement the rule.
Changed files:
static/compliance/source/universal/storyboard-schema.yaml— addsforce_scenario_unsupportedblock with normative MUST for runners: detect the tuple (comply_test_controller present, resolved payloadscenariobegins withforce_, response{success: false, error: UNKNOWN_SCENARIO}) and gradenot_applicablebefore evaluating declared validations. Documents detection order to prevent misgrading absent-tool cases.static/compliance/source/universal/runner-output-contract.yaml— addsfixture_seed_unsupported,force_scenario_unsupported, andunresolved_scenario_referenceas recognized narrowerdetailvalues under canonicalreason: not_applicable, with the encoding MUST forforce_scenario_unsupported.No storyboard YAML changes —
create_media_buy_async.yaml's narrative was already normatively correct.Non-breaking justification
Patch-eligible per the conformance-harness carve-out and the IETF errata test (playbook lines 261-265): the storyboard's own narrative already required
not_applicablegrading; runners emittingFAILEDwere non-conforming against existing normative English. This adds the machine-readable form of a rule already in force — not a new requirement. The canonicalreasonenum inrunner-output-contract.yamlis unchanged;force_scenario_unsupportedis adetailsub-value under the existingnot_applicablereason.Sibling-repo fix needed
adcp-clientrunner needs implementation to honor this contract. File: the UNKNOWN_SCENARIO detection path in the storyboard runner (seesrc/lib/testing/storyboard/andDETAILED_SKIP_TO_CANONICALmapping from PR #611). The detection order MUST placeforce_scenario_unsupportedcheck after confirmingcomply_test_controlleris present (to avoid misgrading the absent-tool case).Pre-PR review
Session: https://claude.ai/code/session_01Uu4K4voWNzFUCUQzKyrsiC
Generated by Claude Code